Outil d'Audit de Sécurité des Configurations Systèmes 🛡️🔒

Ce projet propose un outil d’audit de sécurité des configurations systèmes inspiré de Lynis. Il analyse les paramètres de sécurité de systèmes Linux, identifiant les configurations faibles ou vulnérables et fournissant des recommandations pour améliorer la sécurité.

Fonctionnalités du Projet :

Pré-requis :

Script Python d'Audit de Sécurité :


import os
import subprocess

# Fonction pour vérifier la présence de configurations vulnérables
def check_service_status(service):
    try:
        result = subprocess.run(["systemctl", "is-active", service], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
        return result.stdout.strip()
    except Exception as e:
        return f"Erreur lors de la vérification du service {service}: {str(e)}"

# Vérification des services essentiels
def audit_services():
    services = ["ssh", "ufw", "apache2", "nginx", "fail2ban"]
    report = {}
    
    for service in services:
        status = check_service_status(service)
        report[service] = status
    
    return report

# Analyse des permissions de fichiers critiques
def check_file_permissions(filepath):
    try:
        stat_info = os.stat(filepath)
        permissions = oct(stat_info.st_mode)[-3:]
        return permissions
    except FileNotFoundError:
        return "Fichier introuvable"

def audit_file_permissions():
    files = ["/etc/passwd", "/etc/shadow", "/etc/ssh/sshd_config"]
    report = {}
    
    for file in files:
        permissions = check_file_permissions(file)
        report[file] = permissions
    
    return report

# Analyse des utilisateurs et groupes
def check_user_accounts():
    try:
        with open("/etc/passwd", "r") as f:
            users = [line.split(":")[0] for line in f.readlines()]
        return users
    except Exception as e:
        return f"Erreur lors de l'analyse des utilisateurs: {str(e)}"

# Génération du rapport d'audit
def generate_audit_report():
    report = {}

    # Audit des services
    report['Services'] = audit_services()

    # Audit des permissions de fichiers critiques
    report['Permissions de Fichiers'] = audit_file_permissions()

    # Audit des comptes utilisateurs
    report['Comptes Utilisateurs'] = check_user_accounts()

    return report

if __name__ == "__main__":
    print("Démarrage de l'audit de sécurité des configurations systèmes...")
    report = generate_audit_report()
    
    print("\n--- Rapport d'Audit ---")
    for section, content in report.items():
        print(f"\n{section}:")
        for item, result in content.items():
            print(f"{item}: {result}")

Instructions d'Utilisation :

🚀 Exécution de l'Audit :

Pour lancer l’audit de votre système Linux, exécutez simplement le script suivant :

python audit_system.py

📋 Rapport Généré :

Le script affichera un rapport complet sur les services critiques, les permissions de fichiers sensibles et la liste des comptes utilisateurs actifs sur le système.

⚠️ Avertissement Éthique :

Ce projet est destiné à auditer les configurations systèmes sur vos propres machines ou celles pour lesquelles vous avez obtenu une autorisation explicite. Il est illégal et contraire à l'éthique de réaliser des audits de sécurité sur des systèmes sans permission. 🛡️🔒